/* Copyright 2011 Elektrobit Wireless Communications Oy (EB)


  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 2 as 
  published by the Free Software Foundation.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License along
  with this program; if not, write to the Free Software Foundation, Inc.,
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


 *All rights reserved 
 *Version:Elektrobit_Qt_1.0.0_20110305 */


#include "dbmodel.h"
#include <servicemanager.h>
#include <QSqlRecord>
#include <appcommon.h>

DbModel::DbModel(const QString &sql, QObject *parent) : Model(parent) {
    mSqlModel = SERVICE(DbService)->query(sql);
    if(mSqlModel) {
        mRowCount = mSqlModel->rowCount();
    } else {
        mRowCount = -1;
    }
}

QVariant DbModel::value(const QString &name, int index) {
    QVariant nil;
    if(mSqlModel == NULL || mRowCount <= 0) {
        return nil;
    }
//    index = index % mRowCount >= 0 ? index % mRowCount : index % mRowCount + mRowCount;
    return mSqlModel->record(index).value(name);
}

bool DbModel::isEmpty(int index) {
    if(index >= this->count() || index < 0) {
        return true;
    }
    return false;
}

int DbModel::count() {
    return mRowCount;
}

DbModel::~DbModel() {
    if(mSqlModel) {
        delete mSqlModel;
        mSqlModel = NULL;
    }
}
